/**
 * @file buf.h
 * @date 23.05.04
 * @author lyp
 * @brief 定义结构体buf，用于表示一个磁盘块的缓存，其中包含了一些元数据
 * @version 0.1
 * @status Stable
*/

struct buf {
  int valid;   // 缓存中是否有数据
  int disk;    // 该缓存是否被磁盘所拥有
  uint dev;    // 设备号
  uint blockno;     // 块号
  /*struct sleeplock lock;   */
  uint refcnt;      // 缓存的引用计数
  struct buf *prev; // 指向LRU缓存替换算法中的前一个缓存
  struct buf *next; // 指向LRU缓存替换算法中的后一个缓存
  uchar data[BSIZE]; // 数据
};

